package edu.gduf.service;

import com.github.pagehelper.PageInfo;
import edu.gduf.domain.Message;
import edu.gduf.domain.ResultInfo;

import java.util.List;

/**
 * @author kgy
 * @decription 消息的业务层接口
 */
public interface MessageService {

    /**
     * 获取私信列表
     * @param page  页面下标
     * @param owner 消息的所属者
     * @return
     */
    PageInfo getMessageList(Integer page, String owner);

    /**
     * 获取用户与某个人之间的所有消息
     * @param page       页面下标
     * @param owner      消息所属者
     * @param friendName 关联的用户名
     * @return
     */
    PageInfo viewMessageDetail(Integer page,String owner, String friendName);

    /**
     * 发送消息
     * @param message
     * @return
     */
    ResultInfo sendMessage(Message message);

    /**
     * 删除单条消息
     * @param mid 消息的主键
     * @return
     */
    ResultInfo deleteMessageByMid(Integer mid);

    /**
     * 删除用户与某个人的所有消息
     * @param owner      消息所属者
     * @param friendName 关联的用户名
     * @return
     */
    ResultInfo deleteAllMessageByOF(String owner, String friendName);

    /**
     * 删除用户的消息（多选）
     * @param messageArray
     * @return
     */
    ResultInfo deleteSelectedMessageByMid(List<Integer> messageArray);

    /**
     * 获取用户的未读消息数量
     * @param owner
     * @return
     */
    Integer getUnreadNum(String owner);

    /**
     * 获取用户的发过的所有消息数量
     * @param owner
     * @return
     */
    Integer getAllMessageNum(String owner);

    /**
     * 获取用户与某个朋友的所有消息的数量
     * @param owner
     * @param friendName
     * @return
     */
    Integer getMessageNumWithFriend(String owner, String friendName);
}
